{
if ( hypercall_preempt_check() )
{
- rc = hypercall_create_continuation(
- __HYPERVISOR_mmu_update, 3, ureqs,
+ rc = hypercall3_create_continuation(
+ __HYPERVISOR_mmu_update, ureqs,
(count - i) |
(FOREIGNDOM->id << MMU_UPDATE_PREEMPT_FDOM_SHIFT) |
MMU_UPDATE_PREEMPTED, pdone);
#define PREEMPT_CHECK(_op) \
if ( hypercall_preempt_check() ) \
- return hypercall_create_continuation( \
- __HYPERVISOR_dom_mem_op, 5, \
+ return hypercall5_create_continuation( \
+ __HYPERVISOR_dom_mem_op, \
(_op) | (i << START_EXTENT_SHIFT), \
extent_list, nr_extents, extent_order, \
(d == current->domain) ? DOMID_SELF : d->id);
void startup_cpu_idle_loop(void);
-unsigned long hypercall_create_continuation(
+unsigned long __hypercall_create_continuation(
unsigned int op, unsigned int nr_args, ...);
+#define hypercall0_create_continuation(_op) \
+ __hypercall_create_continuation((_op), 0)
+#define hypercall1_create_continuation(_op, _a1) \
+ __hypercall_create_continuation((_op), 1, \
+ (unsigned long)(_a1))
+#define hypercall2_create_continuation(_op, _a1, _a2) \
+ __hypercall_create_continuation((_op), 2, \
+ (unsigned long)(_a1), (unsigned long)(_a2))
+#define hypercall3_create_continuation(_op, _a1, _a2, _a3) \
+ __hypercall_create_continuation((_op), 3, \
+ (unsigned long)(_a1), (unsigned long)(_a2), (unsigned long)(_a3))
+#define hypercall4_create_continuation(_op, _a1, _a2, _a3, _a4) \
+ __hypercall_create_continuation((_op), 4, \
+ (unsigned long)(_a1), (unsigned long)(_a2), (unsigned long)(_a3), \
+ (unsigned long)(_a4))
+#define hypercall5_create_continuation(_op, _a1, _a2, _a3, _a4, _a5) \
+ __hypercall_create_continuation((_op), 5, \
+ (unsigned long)(_a1), (unsigned long)(_a2), (unsigned long)(_a3), \
+ (unsigned long)(_a4), (unsigned long)(_a5))
+#define hypercall6_create_continuation(_op, _a1, _a2, _a3, _a4, _a5, _a6) \
+ __hypercall_create_continuation((_op), 6, \
+ (unsigned long)(_a1), (unsigned long)(_a2), (unsigned long)(_a3), \
+ (unsigned long)(_a4), (unsigned long)(_a5), (unsigned long)(_a6))
+
#define hypercall_preempt_check() \
(unlikely(softirq_pending(smp_processor_id())))